Skip to content

Scaffold a host driver and CI jobs - #3

Closed
mciantyre wants to merge 1 commit into
imxrt-rs:mainfrom
mciantyre:main
Closed

mciantyre wants to merge 1 commit into
imxrt-rs:mainfrom
mciantyre:main

Conversation

@mciantyre

@mciantyre mciantyre commented Nov 8, 2025 •

Copy link
Copy Markdown
Member

Rather than bringing imxrt-hal and all the boards to this driver package, we can bring this driver package to imxrt-hal and the boards. I have a corresponding commit in imxrt-hal, mciantyre/imxrt-hal#1, that stubs a USB host example for the Teensy 4 and 1170EVK.

If we take that approach, this repository only has the driver, as a library. We can still develop here and easily test the driver in the imxrt-hal package, so I shared some quick docs on how to do that.

Rather than bringing imxrt-hal and all the boards to this driver
package, we can bring this driver package to imxrt-hal and the boards.
I have a corresponding commit in imxrt-hal that stubs a USB host example
for the Teensy 4 and 1170EVK.

If we take that approach, this repository only has the driver, as a
library. We can still develop here and easily test the driver in the
imxrt-hal package, so I shared some quick docs on how to do that.
tacertain added a commit that referenced this pull request Feb 24, 2026
Incorporate the architectural recommendations from PR #3 (mciantyre,
'Scaffold a host driver and CI jobs') into the existing working driver.

- Switch from ~5000 lines of vendored register definitions to imxrt-ral
  0.6, with a thin adapter layer in src/ral.rs
- Use published crates.io dependencies (cotton-usb-host 0.2.1, etc.)
  instead of local path dependencies
- Make the crate host-testable with conditional no_std and 39 unit tests
  for the EHCI data structures
- Move hardware examples to the imxrt-hal repo (separate commit there);
  remove examples/, .cargo/config.toml, and example-only dev-deps
- Add GitHub Actions CI: fmt, clippy, unit tests, cross-compile check
- Re-export cotton-usb-host consumer modules (host_controller, usb_bus,
  wire) at the crate root so downstream code needs only imxrt-usbh
- Add Cargo.lock to .gitignore (library convention)
- Update README and developer guide to reflect the new structure
tacertain added a commit that referenced this pull request Mar 4, 2026
Incorporate the architectural recommendations from PR #3 (mciantyre,
'Scaffold a host driver and CI jobs') into the existing working driver.

- Switch from ~5000 lines of vendored register definitions to imxrt-ral
  0.6, with a thin adapter layer in src/ral.rs
- Use published crates.io dependencies (cotton-usb-host 0.2.1, etc.)
  instead of local path dependencies
- Make the crate host-testable with conditional no_std and 39 unit tests
  for the EHCI data structures
- Move hardware examples to the imxrt-hal repo (separate commit there);
  remove examples/, .cargo/config.toml, and example-only dev-deps
- Add GitHub Actions CI: fmt, clippy, unit tests, cross-compile check
- Re-export cotton-usb-host consumer modules (host_controller, usb_bus,
  wire) at the crate root so downstream code needs only imxrt-usbh
- Add Cargo.lock to .gitignore (library convention)
- Update README and developer guide to reflect the new structure
@mciantyre mciantyre closed this Mar 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant